package com.manage.pojo.entity.case_manage;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@Schema(description = "案件管理查询参数")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CaseManageParam {

    //用户信息
    @Schema(description = "用户ID")
    private String userId;	// 用户ID
    @Schema(description = "用户类型")
    private String userType;	// 用户类型

    // 搜索框
    @Schema(description = "搜索内容")
    private String search;           // 搜索 内容为贷款编号或者借款人姓名

    // 案件基本信息
    @Schema(description = "案件批次")
    private String caseBatch;           // 案件批次
    @Schema(description = "承接律师")
    private String granteeName;     // 承接律师
    @Schema(description = "负责律师")
    private String principalName;   // 负责律师
    @Schema(description = "主办律师")
    private String sponsorName;          // 主办律师

    // 时间相关字段
    @Schema(description = "委托日期范围-开始")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date entrustDateStart;  // 委托日期范围-开始
    @Schema(description = "委托日期范围-结束")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date entrustDateEnd;    // 委托日期范围-结束
    @Schema(description = "节点截止日期范围-开始")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date nodeDeadlineStart;     // 节点截止日期范围-开始
    @Schema(description = "节点截止日期范围-结束")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date nodeDeadlineEnd;       // 节点截止日期范围-结束

    // 银行相关信息
    @Schema(description = "银行")
    private String bankName;            // 银行
    @Schema(description = "支行")
    private String bankBranchName;            // 支行

    // 保证金信息
    @Schema(description = "保证金结算状态")
    private int depositSettlementStatus; // 保证金结算状态
    @Schema(description = "保证金缴纳日期范围-开始")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date depositPaymentDateStart;  // 保证金缴纳日期范围-开始
    @Schema(description = "保证金缴纳日期范围-结束")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date depositPaymentDateEnd;    // 保证金缴纳日期范围-结束

    // 案件状态信息
    @Schema(description = "预警状态")
    private int warningStatus;       // 预警状态
    @Schema(description = "案件阶段")
    private String caseStage;           // 案件阶段

    // 分页参数
    @Schema(description = "页码")
    private Integer pageNum;            // 页码
    @Schema(description = "每页大小")
    private Integer pageSize;           // 每页大小

    private Integer offset;

}
